两年AI研究经验(教训)总结,进来看看吧!
云栖君导读:人工智能研究这个领域是有一定门槛的。对于初学者来说,一般通常的做法是直接购买一些热门的书籍,比如“西瓜书”、“花书”、“xx天从入门到精通”、“xx天从入门到放弃”等等,但大多数书籍都是讲的基础知识,稍显乏味和枯燥,此外内容太深奥,初学者可能看一段时间就想放弃了。本文作者以过来人的身份将自身2年的研究经验毫无保留地分享给大家,希望对即将开始从事人工智能研究的朋友有所帮助。
起步
找一个你随时方便提问的人
刚进入公司时,常常会对一些基本问题犹豫不决,这些问题可能会暴露出自身缺乏专业知识。但是过了几个月后,我的提问才慢慢感到自然,提问都是精心拟定的。在此之前,我会积累大量的问题,但现在只要遇到一个问题,我就会立马提问,这样不会造成问题积压以至于越来越困惑。
寻找不同领域的研究灵感
现在不是单打独斗的时代,讲究合作。知识也不例外,多学科交流。对于每个人而言,决定从事什么方向可能是研究中最困难的部分,以下是我所看到的一些具有长期记录的研究人员所采用的策略:
1.与不同领域的研究人员交流。咨询他们感兴趣的问题,询问是否有想要分析的数据集、现有技术存在哪些不足。机器学习中最有效的工作是与生物学、化学、物理、社会科学或纯数学的碰撞。例如,我正在思考Matthew Johnson 在2016年NIPS的文章以及Justin Gilmer在2017年ICML的文章,两篇文章分别是关于鼠标行为数据集的分析以及量子化学的应用;
2.编写一个简单的基线以获得对问题的感觉。比如,尝试编写一些用于控制倒立摆的校准代码。在写基线代码时,会遇到很多情况、各种问题或者一些临时产生的想法,这些都能够加深对问题的理解。
3.扩展喜欢的某篇论文的实验部分。仔细阅读一篇论文,了解其采用的方法和获得的实验结果,设法找到一些可以完善的地方。首先考虑最简单的扩展,然后思考下论文的方法是否合理,实验结果有没有不完善的地方。
重视可视化工具和技能
运行可视化脚本允许我们快速验证代码是否与想法匹配。更重要的是,良好的可视化往往使得想法和代码中的错误变得更加明显以及可解释性。
对于一个实际任务,想出解决问题的正确方法是很困难的。如果采用的是迭代优化模型(比如深度学习),那么绘制出损失函数会是一个好的开端。此外,对于深度学习这个“黑匣子”方法,可视化也能够部分解释其学习到的神经网络参数。比如,当处理图形模型事,可视化其一维或二维变量的分布,当它改变时,可以推断出很多信息。可视化是技术有效性的晴雨表,每次可视化分析结果都能对所采用的的方法或代码起到一定的反馈。
TensorFlow可视化工具Tensorboard
分布图
Q值学习图
弄清楚研究者和论文的最初动机
在学术界可以发现很好玩的现象,研究人员在同一个会议上发表论文,使用相同的技术行话,但两个人的研究动机可以是完全相反的。动机分为以下三个动机——“数学”动机、“工程”动机和“认知”动机:
“数学”动机:智能系统的基本属性和局限性是什么?
“工程”动机:如何开发比其它方法更好地解决实际问题的智能系统?
“认知”动机:如何模拟像人类或其它动物那样的自然智能?
有些论文不止一个动机,此外,每个研究者的动机不可能一直保持不变,这和工程师的兴趣有关。优秀的论文和研究人员将在一开始就说明其研究动机,但有些论文往往表述的不是很清楚,这就需要读者们仔细阅读,此外,在自己写作时也要注意这一点,以防动机不明显而被退稿或退修。
深入研究
学会找论文
网络上充斥着大量的人工智能论文,大多数人首先会发表在arXiv上,由于该平台可以先发表再经过审稿,因此需要学会从中辨别。另外,建议在社交软件上跟踪你最喜欢的研究人员的动态。此外,还有各种会议也值得关注。三大会议分别是NIPS、ICML以及ICRL。其它著名的一般会议包括AAAI、IJCAI和UAI。对于每一个分支学科而言,都有更加具体的会议。比如计算机视觉领域有CVPR、ECCV和ICCV;自然语言领域有ACL、EMNLP和NAACL;机器人学领域有CoRL、ICAPS、ICRA、IROS和RSS;与理论工作相关的会议有AISTAS、COLT和KDD。此外还有一些期刊也值得关注,JAIR和JMLR是人工智能领域最突出的两个期刊,不过在Nature和Science期刊中也会有很好的论文。
对于一些早期论文的查找也是非常重要的,那些被奉为“经典论文”的论文往往会在参考论文中出现。另外一种发现早期论文的方法是从资深教授的个人主页开始查找,其成名作一般会挂在上面。此外还可以通过一些搜索助手,比如谷歌学术、百度学术等查询关键词。
读论文要花多少时间?
关于如何读论文,人们经常给出两个建议。第一个就是在研究生的第一学期或者第一年度把所有相关的论文都读一遍;第二个是当读了大量论文后,不要再泛读,而是找到突破口,想出创新的办法。
我个人同意第一个建议,但不同意第二个建议。只要有足够的时间用于原始研究,那么就应该尽可能多地阅读论文。对于专业研究员而言,不可能总依靠个人幸运来发现创新的解决办法,有时候你想到的方法别人可能已经尝试过,只是你不知道而已。
绝大多数的研究者都是耐心的跟踪研究方向的进展以及发展趋势,有条不紊地思考并解决问题。阅读相关论文也是弄清楚目前所处的阶段以及接下来需要做什么的一个好方法。
关于尽可能多地阅读论文有一个重要的提示:花时间理解消化一篇论文和阅读一篇论文同样重要,阅读的时候可以做些笔记,而不是囫囵吞枣,只求数量,不求质量。
对话 >> 视频 >> 论文 >> 会谈
论文无疑是了解不熟悉的研究理论最容易获取的来源,但是什么路径是最有效的呢?不同的人可能感受不一样。对我而言,我发现对话(与那些已经理解的人)是迄今为止最快且最有效的理解途径。如果找不到和这样的人对话的机会,可以找下关于问题的相关视频,例如论文作者访谈视频,这样的视频可以提供很好的观点。此外,当演讲者向现场观众演讲时,他们往往优先考虑的是清晰度而不是简洁性。在大多数论文写作中,作者将优先权顺序互换了,其中词数为王,背景知识解释得太多反而显得作者对该领域不熟悉。排在最后的是会谈,简单的会谈往往显得比较正式,与主持人的谈话内容可能会非常有价值。
谨防炒作
人工智能取得一系列的成果吸引了公众的关注,使得更多的人投入这个领域,进而促使人工智能取得更多突破性的进展。整个循环是良性的,但有一个副作用就是存在大量的炒作。视图获得点击量的记者、热钱投资者、创业型公司都是夸大炒作泡沫的罪魁祸首。因此,在我们阅读新闻或论文时,要注意“标题党”,以免被误导。
在2017年的NIPS的问答环节,一位著名的教授拿着麦克风(代表炒作警察)告诫作者在论文标题中慎重使用“想象”一词。这和我们看新闻时一样,标题很吸引人,但里面的内容却跟标题关系不大,使得阅读者大失所望。阅读论文同样如此,严防炒作,我们需要做的是根据实验方法和结果来评估一篇论文是否对自己有所帮助。
研究是场马拉松
总是在不断进步
在早期探索研究项目时,一般我会花几个小时开展头脑风暴,希望一些模糊的直接能够指引一个具体的方向。有时候项目没有任何进展,但在黑暗中摸索也算是整个研究过程中的一部分。当不知道下一步应该做什么时,可以基于目前已有的情况将最模糊的想法写下来,并在写的过程中进行一一排除(写出排除的原因)。在没有任何想法的情况下, 可以采取阅读或与同事交流的形式以获得灵感。
从死胡同中学会判别和止损
大牛们一般花更多的时间在好的想法上,能够区分想法的好与坏在很大程度上依赖于个人的经验。尽管如此,任何水平的研究人员都会不断遭遇以下决定:研究思路是否有缺陷、是否应该挽救或进一步支持所提出的想法、是否完全放弃所提出的想法?尤其是在早期时,研究人员踏入死胡同后会停留很长一段时间,而不愿放弃。虽然放弃意味着之前的花费的时间白费了,但有的时候要懂得及时止损。
写作
一些大牛给出的早期职业建议是:写作。平时可以写写博客和论文,但更重要的是把自己的想法记录下来。因为写作有助于我们理解与思考相关知识。
心理健康和身体健康是科研的先决条件
学术研究者在追求科学发现的过程中经常会遇到熬夜、顾不上吃饭等问题,这些都不是好习惯。很多博士都开始秃头,甚至硕士就开始掉头发。锻炼身体并放空自己内心也是对科研的投资,并不是阻碍科研。睡8个小时后再工作4个小时,其效率比睡4个小时工作8个小时要高得多。有的时候会遇到卡壳,即使使出浑身解数也无法取得一丝进步,这个时候建议离开工作岗位,稍微活动一下并做长呼吸,放空下自己。
作者信息
Tom Silver,专注于计算科学与数学、人工智能
本文由阿里云云栖社区组织翻译。
文章原标题《Lessons from My First Two Years of AI Research》,译者:海棠,审校:Uncle_LLD。